/** Aceasta aplicatie afiseaza toti senzorii de pe telefonul Android 
 * sub forma unei liste simple si
 * permite vizualizarea datelor inregistrate de accelerometru si giroscop.
 * 
 * @author Simona
 * 
 */

package tutorial_Basic_Sensors.com;

import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Basic_Sensors extends ListActivity {

	private SensorManager mSensorManager;
	private List<Sensor> mSensorList;

	// Se apeleaza cand activitatea este creata pentru prima data
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		// obtine instanta pentru sensor manager
		mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

		// obtine toate tipurile de senzori
		mSensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL);

		// construieste o lista cu numele sensorilor
		List<String> mSensorTypes = new ArrayList<String>();
		Sensor sensor;
		for (int i = 0; i < mSensorList.size(); i++) {
			sensor = mSensorList.get(i);
			mSensorTypes.add(sensor.getName());
		}
		
		// afiseaza senzorii intr-un simple ListView
		this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, mSensorTypes));
	}

	// Se apeleaza cand se selecteaza un element din lista
	@Override
	protected void onListItemClick(ListView list, View view, int position, long id) {
		super.onListItemClick(list, view, position, id);

		Bundle bundle = new Bundle();
		
		// se mapeaza sensor_id ca fiind pozitia view-ului elementului selectat
		bundle.putInt("sensor_id", position);

		// se creeaza o noua activitate pentru exectuat
		Intent newIntent = new Intent(this.getApplicationContext(), Sensor_Readings.class);
		newIntent.putExtras(bundle);
		
		// se executa noua activitate
		startActivityForResult(newIntent, 0);           
	}       

}